[cuda.compute]: add CI job that builds c.parallel with thread sanitizer#9986
Conversation
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
|
/ok to test fff293a |
The selector state is now per-call (stack-local), so the build-owned selector ops carry state=nullptr. Drop the now-dead std::free(op.state) calls in the destructor, cleanup path, and deserialize error handlers (free(nullptr) is a harmless no-op but misleads readers into thinking the build op still owns state), and fix the two comments accordingly. Every op.code free is preserved.
08fbce4 to
d2280b9
Compare
|
/ok to test d2280b9 |
This comment has been minimized.
This comment has been minimized.
|
/ok to test ac9237f |
This comment has been minimized.
This comment has been minimized.
The python_tsan build links libcccl.c.parallel.so with -fsanitize=thread, which the linker resolves via gcc-toolset-13's libtsan.so -- a package the ci-wheel rockylinux8 image doesn't install with -gcc-c++, so the build failed with 'cannot find -ltsan'. Install gcc-toolset-13-libtsan-devel when CCCL_C_PARALLEL_SANITIZE_THREAD is set. Also pin the toolset version in one gcc_toolset_version variable (the sanitizer runtime must match the compiler's toolset, so they cannot drift apart).
Timing on the green CI run (29784468283) put the TSan lane's marginal cost at ~15.6 min/PR (a dedicated ~9.8 min instrumented build that can't share the normal wheel producer, plus a ~5.8 min FT test). Worth it per-PR: the segmented_sort data race was caught only by TSan, and it lives in the shared build/launch machinery a PR can touch. Add python_tsan to pull_request (keeping the nightly row, as the other python lanes do) and drop the stale 'Nightly-only' note.
324ebc1 to
f2931b5
Compare
|
/ok to test 8e9f773 |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
/ok to test 93cd393 |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Critical: the list of CI jobs does not contain ThreadSanitizer-labeled job, likely because it is not included in |
|
/ok to test bf5620d |
There was a problem hiding this comment.
Actionable comments posted: 1
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: bf3845e9-64cd-4e04-a0a6-fda2ff839905
📒 Files selected for processing (3)
c/parallel/CMakeLists.txtci/matrix.yamlci/project_files_and_dependencies.yaml
🚧 Files skipped from review as they are similar to previous changes (2)
- c/parallel/CMakeLists.txt
- ci/matrix.yaml
|
/ok to test 7b03dcb |
(cherry picked from commit be543f3)
|
/ok to test 1f09d02 |
| # the linker resolves via the toolset's libtsan.so. That runtime lives in a | ||
| # separate package not pulled in by -gcc-c++, so install it for the TSan lane. | ||
| if [[ "${CCCL_C_PARALLEL_SANITIZE_THREAD:-}" =~ ^(1|true|TRUE|on|ON)$ ]]; then | ||
| /workspace/ci/util/retry.sh 5 30 dnf -y install "gcc-toolset-${gcc_toolset_version}-libtsan-devel" |
There was a problem hiding this comment.
Do we have any fedora based containers?
There was a problem hiding this comment.
RockyLinux I see, I didn't know we had other distributions out of rapids.
This comment has been minimized.
This comment has been minimized.
|
/ok to test 850d3d8 |
|
/ok to test fb04700 |
This comment has been minimized.
This comment has been minimized.
🥳 CI Workflow Results🟩 Finished in 2h 31m: Pass: 100%/524 | Total: 4d 08h | Max: 1h 01m | Hits: 100%/668691See results here. |
This also fixes a bug found by thread sanitizer